home *** CD-ROM | disk | FTP | other *** search
- "Sun-1.1"
-
- "Copyright 1992 Sun Microsystems, Inc. and Stanford University.
- See the LICENSE file for license information."
-
- traits userInterface _AddSlotsIfAbsent: ( | ^ eventWatcher = () | )
- traits eventWatcher _Define: ( |
- _ parent* = traits clonable.
-
- printString = 'an eventWatcher'.
-
- copyForDisplay: disp SendingTo: t = (
- ((copy sema: semaphore copyBinary) display: disp) target: t ).
-
- watch = (
- [ | :exit. event |
- grabEvents.
- event: display nextEvent.
- dispatch: event.
- quitFlag ifTrue: [ exit value ].
- ungrabEvents.
- ] loopExit.
- self ).
-
- dispatch: event = ( (event typeName, ':') sendTo: target With: event ).
-
- "note that grabEvents has to wait for the eventWatcher to get
- an event before it can proceed--when idling, the eventWatcher
- is waiting on X get next event"
- grabEvents = ( sema wait ).
- ungrabEvents = ( sema signal ).
-
- quit = ( quitFlag: true ).
- | )
-
- prototypes userInterface _AddSlotsIfAbsent: ( | ^ eventWatcher = () | )
- eventWatcher _Define: ( |
- _ parent* = traits eventWatcher.
- _ thisObjectPrints = true.
-
- _ sema <- semaphore.
- _ display.
- _ target.
- _ quitFlag <- false.
- | )
-